Field of the Invention
The present invention relates to a color conversion method, a program and an image processing apparatus, more particularly to a technique of converting color image information of an input system into color image information that falls within a color reproduction range of an output system when a color reproduction range of an input device differs from the color reproduction range of an output device.
Description of the Related Art
There is currently implemented a color management system (CMS) that realizes color matching among different devices such as a scanner, a display and a printer. Moreover, a color management system using a device profile is adapted to adjust an output color of a color printer (CMYK printer) to a desired color. Here, CMYK are the output colors of the color printer and indicate four colors including CMY being three fundamental colors (cyan, magenta and yellow) and K (black). A color conversion table (LUT: Look Up Table) is used to convert a certain CMYK value into a desired CMYK value. That is, a color conversion table used to convert a certain CMYK value into another CMYK value (such table will be hereinafter referred to as a “CMYK-CMYK color conversion table”) needs to be created in advance.
The color conversion table (CMYK-CMYK color conversion table) recording desired color conversion to convert a certain CMYK value into another CMYK value is generally created by joining a CMYK-L*a*b* color conversion table of a target and an L*a*b*-CMYK color conversion table of an output device. A standard color space such as Japan Color is generally used as the target. Here, L*a*b* is a color system independent of a device where a value of the L*a*b* in the CMYK-L*a*b* color conversion table is a colorimetric value.
Now, when interpolation computation is performed to find a CMYK value from a certain L*a*b* value by using the L*a*b*-CMYK color conversion table of a printer, a point used in the interpolation computation is sometimes subjected to out-of-gamut mapping. Each of the devices such as the scanner, display and printer processing a color image has a device-specific range of colors that can be input or output, namely, a color gamut. In the interpolation computation involving the out-of-gamut mapping, for example, the point to be used in the interpolation that is based on the L*a*b* value (colorimetric value) before executing the out-of-gamut mapping is first mapped onto a surface of the color gamut (subjected to out-of-gamut mapping). Then, the point to be used in the interpolation that is based on the L*a*b* value before executing the out-of-gamut mapping is weighted, whereby the CMYK value is computed by multiplying the point obtained after the out-of-gamut mapping by the weight. Therefore, the CMYK value obtained after the interpolation computation equals a value toward the inner side of the color gamut relative to an original value due to the out-of-gamut mapping performed.
As a result, a color on the inner side of the color gamut surface (color gamut boundary) is used for a target color on the color gamut surface in the CMYK-CMYK color conversion table created in the end, so that the whole color gamut of the printer cannot be fully used in an effective manner.
FIG. 11 is a diagram illustrating an example of a color conversion method in the related art.
A color space (such as a Lab space) independent of a device is called a profile connection space (PCS). FIG. 11 illustrates a color gamut of a device where a point indicated with Δ is an input point to be subjected to color conversion while a point indicated with ◯ is a point on a grid set in the PCS. An address on the PCS and a CMYK value corresponding to the address are described in each of grids G1 to G4.
When an interpolation computation using the grids G1 to G4 is performed on an input point In (color to be subjected to color conversion) in the PCS (such as L*a*b*) as illustrated in FIG. 11, the grids G1 and G2 outside the color gamut are mapped to grids G1′ and G2′ (indicated with □) on a color gamut surface by out-of-gamut mapping. The grids G3 and G4 stay at approximately the same positions after mapping. When the grids G1′ and G2′ obtained after the out-of-gamut mapping are used in the interpolation computation, the input point In is mapped not to a corresponding target color (target T) on the color gamut surface but to a color on the inner side of the color gamut surface (a point In′ obtained after the interpolation computation) (a point indicated with ⋆), whereby an error is generated with respect to the target T. As a result, the whole color gamut of the printer cannot be fully used in an effective manner. An error associated with color conversion performance is increased as well.
As a method of solving such problem, JP2006-215808 A discloses a technique of determining whether a “color to be subjected to color conversion”, not a point cloud used in the interpolation computation, is inside or outside the color gamut and switching computation according to a result of the determination. This however causes interpolation accuracy to be decreased in a part of the area.
FIG. 12 is a diagram illustrating the technique described in JP 2006-215808 A as another example of the color conversion method employed in the related art.
As illustrated in FIG. 12, the technique described in JP 2006-215808 A is adapted to compare a point (grid) on the PCS with a polyhedron (polygon) on the color gamut surface to determine whether the point to be subjected to color conversion is inside or outside the color gamut and switch an interpolation method.
The technique described in JP 2006-215808 A determines whether the input point In is inside or outside the color gamut. Accordingly, as illustrated in FIG. 12, grids G1 and G2 are subjected to out-of-gamut mapping and mapped to grids G1′ and G2′ on the color gamut surface, when the input point In is inside the color gamut but the grids G1 and G2 used in the interpolation computation are outside the color gamut. Grids G3 and G4 stay at approximately the same positions after mapping. Then, as a result of the out-of-gamut mapping, the input point In is computed as a color (point In′ obtained after interpolation computation) that is slightly on the inner side of a target color (target T), whereby an error is generated with respect to the target T. That is, the color gamut is reduced as described above when the color to be subjected to color conversion (input point In) is inside the color gamut while at the same time a color conversion table subjected to out-of-gamut mapping is referenced in the interpolation processing.
The aforementioned problem does not arise when out-of-gamut mapping computation is executed on all points (grids) used in the interpolation computation to compute the CMYK value. This however is not practical because of the amount of time required for computation. It is thus desired to perform only the interpolation computation without performing the out-of-gamut mapping computation on an area having no problem, in order to cut the computation time.